草庐IT

java - 指向 Java LinkedList 节点的指针

全部标签

pointers - 函数指针参数变化

我正在尝试编写一些使用指针参数更改结构片段的函数。我在GoPlayground中用这种类型的代码做了一些Playground,我发现我有一些错误,但我不知道什么是管理它的最佳方法packagemainimport"fmt"typePersonstruct{namestring}funcdoSomething(person*Person){person.name="John"}funcmain(){varpersons[]Personp:=Person{name:"David"}persons=append(persons,p)doSomething(&p)fmt.Println(per

pointers - 初始化指针数组 - 无法创建类型 *[]type

它是一个简单的代码,将car类型的对象保存到一个car类型的数组中。我在这里尝试使用指针来传递数组引用。有2个问题:1-我无法将其初始化为空数组。当我使用make时,它说:cannotmaketype*[]car2-如果我不使用make,会出现运行时错误:panic:runtimeerror:invalidmemoryaddressornilpointerdereference代码:import"fmt"typecarstruct{platestringcolorstring}funcmain(){var_cars*[]car//listofcars_cars=make(*[]car,

pointers - 不同类型的指针之间有什么区别?

指针指向内存中的一个位置。据我所知,实际上所有内存地址都具有相同的类型,与变量类型无关。除了使用不同的指针类型(*int、*string等),是否可以只使用一种类型(varppointer)所有指针类型?不同的指针类型有什么区别?packagemainimport"fmt"funcmain(){i:=5s:="abc"varpi*int//alternativelyvarpipointervarps*string//alternativelyvarpspointerpi=&ips=&sfmt.Printf("%p%p",pi,ps)//resultis0x1040e0f80x1040a

pointers - 在 Go 中增加一个指针

这个问题在这里已经有了答案:PointerarithmeticinGo(2个答案)关闭6年前。谁能告诉我如何在Go中通过字符串递增指针?我已经像在C中那样尝试了ptr+=1但它说类型*string和int是不兼容的。谢谢

go - 如何将字符串作为参数传递给 Golang 指针接收函数?

这个问题在这里已经有了答案:"usedasvalue"infunctioncall(1个回答)关闭4年前。我正在尝试一种带有值和指针接收函数的简单Go结构。我无法将一个字符串作为参数传递给指针接收函数来修改结构数据。任何人都可以帮忙吗?代码:packagemainimport("fmt")typebookstruct{authorstringnamestringcategorystringpriceint16}func(bbook)greet()string{return"Welcome"+b.author}func(b*book)changeAuthor(authorstring){

java - 为什么用 Golang 写的一些函数运行起来比用 Java 还要慢?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭3年前。Improvethisquestion我用Golang和Java测试了几个简单的函数。令我惊讶的是,Java有时比Golang更快(尤其是在递归函数和标准库中的某些函数,如math/rand.Rand)。我想知道为什么。这是我用于测试的一些代码和结果。Golang代码:packagemainimport("fmt""math/rand""time")funccalPi(pointCountint)float64{inCircleCou

pointers - 无法通过结构方法替换指针

得到一个返回指针的结构方法:func(d*DataMap)Get(pCoord)*CellData{return&d.Data[p.X+(p.Y*d.Size)]}d.Data是一个CellData数组,它是一个具有多个字段的结构。使用这种方法我可以修改每个字段的内部值,即:example.Get(p).Something=123但是我不能这样做:example.Get(p)=*yada(yadaisa*CellData)我想用我得到的另一个指针替换指针的地方:cannotassigntoexample.Get(p)(undefined)我做错了什么?函数的输出已定义,不知道为什么会出

go - 我可以使用指向 "error"的指针来捕获返回错误吗?

我正在编写一些事务开始/提交/回滚函数,我想将block配对以防止忘记提交我是这样写的:func(foo*Foo)Bar()(errerror){foo.Begin()deferfoo.End(&err)//somebusinesscodereturn}func(foo*Foo)End(eptr*error){//ifrecoverifr:=recover();r!=nil{debug.PrintStack()*eptr=r.(error)}varerr=*eptriferr!=nil{foo.Rollback()}else{foo.Commit()}}它有效,但它使用“接口(inte

pointers - golang 中的指针

这个问题在这里已经有了答案:Whydoesjson.Unmarshalworkwithreferencebutnotpointer?(4个答案)关闭4年前。我正在使用golang来解析一个json字符串:str:="{...}"varfinterface{}json.Unmarshal([]byte(str),f)fmt.Println(f)虽然我在控制台中得到了nil。当我将代码更改为:json.Unmarshal([]byte(str),&f)它将打印json字符串。这是怎么回事?

java - 如何使用 Java native 接口(interface)从 Java 调用 Go 函数?

可以通过JNA调用C方法Java中的接口(interface)。如何使用Go实现相同的功能?packagemainimport"fmt"import"C"//exportAddfuncAdd(x,yint)int{fmt.Printf("Gosays:adding%vand%v\n",x,y)returnx+y} 最佳答案 在查看有关GoSharedLibraries的文档后:可以集成JavaSpringBatch对Go函数的调用。下面是一个简短的例子:Go函数:packagemainimport"fmt"import"C"//ex